Hibernate Configuration, SessionFactory, এবং Transaction Management

Java Technologies - স্প্রিং ওআরএম (Spring ORM) Hibernate এর সাথে Spring ORM Integration |
66
66

স্প্রিং ওআরএম (Spring ORM) হল স্প্রিং ফ্রেমওয়ার্কের একটি মডিউল যা Java-তে ডাটাবেস অপারেশন সহজ করার জন্য ডিজাইন করা হয়েছে। এটি Object-Relational Mapping (ORM) টুল যেমন Hibernate, JPA ইত্যাদির সঙ্গে সংযোগ স্থাপন করতে সাহায্য করে। স্প্রিং ORM ডাটাবেস ম্যানেজমেন্টের জন্য boilerplate কোডের প্রয়োজনীয়তা হ্রাস করে এবং Spring Framework-এর অন্যান্য সুবিধার সঙ্গে ORM একীভূত করে।


Hibernate Configuration

Hibernate কী?

Hibernate হল একটি জনপ্রিয় ORM ফ্রেমওয়ার্ক যা Java-এর জন্য ডাটাবেসের সঙ্গে Object Mapping সহজ করে। এটি SQL লেখার ঝামেলা কমায় এবং ডাটাবেসের সঙ্গে কাজ করার সময় Java Objects ব্যবহারের সুযোগ দেয়।

Spring এ Hibernate Configuration

Hibernate এবং Spring ORM একত্রে ব্যবহার করতে গেলে নিম্নলিখিত ধাপগুলো অনুসরণ করতে হয়:

Maven ডিপেনডেন্সি যোগ করা

Hibernate এবং Spring ORM ব্যবহার করতে হলে প্রকল্পে প্রয়োজনীয় Maven ডিপেনডেন্সি যোগ করতে হয়:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>YOUR_SPRING_VERSION</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>YOUR_HIBERNATE_VERSION</version>
</dependency>

Hibernate Configuration ফাইল

Hibernate Configuration সাধারণত hibernate.cfg.xml ফাইলে সংরক্ষিত হয়। উদাহরণ:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/your_database</property>
        <property name="hibernate.connection.username">your_username</property>
        <property name="hibernate.connection.password">your_password</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
    </session-factory>
</hibernate-configuration>

SessionFactory ব্যবস্থাপনা

SessionFactory কী?

Hibernate-এ SessionFactory ডাটাবেস সংযোগ এবং সেশনের জীবনচক্র পরিচালনার জন্য ব্যবহৃত হয়। এটি একবার তৈরি হয় এবং অ্যাপ্লিকেশনের লাইফটাইম ধরে ব্যবহৃত হয়।

Spring এ SessionFactory Bean Configuration

Spring-এ Hibernate SessionFactory Bean তৈরি করার জন্য নিচের কনফিগারেশন ব্যবহার করা হয়:

@Bean
public LocalSessionFactoryBean sessionFactory() {
    LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
    sessionFactory.setDataSource(dataSource());
    sessionFactory.setPackagesToScan("com.example.model");
    sessionFactory.setHibernateProperties(hibernateProperties());
    return sessionFactory;
}

private Properties hibernateProperties() {
    Properties properties = new Properties();
    properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect");
    properties.put("hibernate.show_sql", "true");
    properties.put("hibernate.hbm2ddl.auto", "update");
    return properties;
}

Transaction Management

Transaction Management কী?

Transaction Management একটি গুরুত্বপূর্ণ ধারণা যেখানে একাধিক ডাটাবেস অপারেশন atomically কার্যকর হয়। যদি কোনো এক ধাপ ব্যর্থ হয়, তবে পুরো লেনদেনটি rollback হয়।

Spring-এ Transaction Management

Spring-এ দুটি Transaction Management পদ্ধতি রয়েছে:

  • Declarative Transaction Management (Annotation-based)
  • Programmatic Transaction Management (Manual Control)

Declarative Transaction Management (Annotation-based)

Spring ORM-এ সহজে Transaction পরিচালনার জন্য @Transactional অ্যানোটেশন ব্যবহার করা হয়। উদাহরণ:

@Service
@Transactional
public class EmployeeService {
    @Autowired
    private EmployeeDao employeeDao;

    public void saveEmployee(Employee employee) {
        employeeDao.save(employee);
    }
}

Programmatic Transaction Management

Spring-এ প্রোগ্রামেটিক পদ্ধতিতে ট্রানজেকশন পরিচালনার জন্য TransactionTemplate ব্যবহার করা হয়:

@Autowired
private TransactionTemplate transactionTemplate;

public void saveEmployee(Employee employee) {
    transactionTemplate.execute(status -> {
        employeeDao.save(employee);
        return null;
    });
}

Spring ORM Hibernate Configuration, SessionFactory, এবং Transaction Management-এর মাধ্যমে ডাটাবেসের সঙ্গে সহজে কাজ করা যায়। এগুলো Spring Framework এবং Hibernate-এর শক্তিশালী সমন্বয় নিশ্চিত করে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion